畫室每隔一段時間,會有一次清倉日
堆在角落的舊畫架、調配失敗的顏料、學徒試手感留下的草稿
師傅會一件一件檢查,決定哪些留、哪些丟沒有人喜歡清倉日,「留著,至少不會出錯;丟錯了,才要負責」
但畫室的空間有限,捨不得丟的東西堆多了,真正要用的工具,反而找不到
過去六天,我們認出了六種「贅肉」
但認出問題,跟真的動手刪掉,中間常常隔著一句猶豫:
「這個類別,會不會其實還有地方在用?」
「這段程式碼,是不是某個我不知道的舊功能留下的?」
「刪錯了,誰負責?」(這個最常發生)
這些猶豫,大多不是技術問題,是信心問題
不確定刪掉之後,系統還完不完整
安全刪除一段可疑的無用程式碼,通常需要走過這幾步:
走完這四步,還是刪錯了,git 還找得回來,這是清倉日最大的安全網
真正該提防的,不是刪錯,是連確認的力氣都沒花,就決定「先留著比較保險」
Day 24 的猜測性通用,常常帶著這句話:「先做成可擴充的,以後說不定用得到」
清倉日要問的是反過來的問題:這個彈性,加上去到現在,有沒有真的被用過?
如果從加上去那天到現在都沒用過,「以後」大概率也不會用到
真正要延伸彈性的時候,需求會很具體
因為那時候,你面對的是一個真實存在的第二種情境,而不是一個「說不定」
模組四的六個警訊,跟 S / O / L / I / D 的對應,不像前三個模組那麼工整
它們的共同點,不是違反某一條特定的規矩,是讓「該不該存在」這個判斷,變得模糊
但有一個間接的關聯值得留意:一個類別的職責如果本來就切得夠乾淨(S),要判斷「這段程式碼還有沒有用」會容易得多,因為它的邊界清楚,呼叫端也清楚
職責混雜的程式碼,連「這段是不是死的」都很難確定,更別說安心刪除
清倉日清得動,通常是因為前面的地基打得夠乾淨
明天我們進入最後一個模組,文藝復興畫室的分工倫理:師傅與學徒,不該互相代筆
過度的耦合者,正式開工